package com.founder.devwork.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.founder.devwork.dto.res.RepoAuthorStatsDTO;
import com.founder.devwork.dto.res.TopRepositoryDTO;
import com.founder.devwork.entity.Repository;
import java.util.List;

/**
 * RepositoryService 用于操作 Repository 表。
 * 提供查询仓库信息的方法。
 */
public interface RepositoryService extends IService<Repository> {
    /**
     * 查询仓库统计信息
     *
     * @param page 页码
     * @param gitInstance Git实例标识
     * @param name 仓库名称（支持模糊查询）
     * @param sortBy 排序字段
     * @param sortDir 排序方向（ASC/DESC）
     * @return TopRepositoryDTO列表，包含仓库统计信息
     */
    IPage<TopRepositoryDTO> queryRepositoryStats(Page<TopRepositoryDTO> page, String gitInstance, String name, String sortBy, String sortDir);

    List<RepoAuthorStatsDTO> getRepoAuthorsStats(String gitInstance, Long repoId, String sortBy, String sortDirection);
}
